从特征工程到XGBoost参数调优

您所在的位置:网站首页 xgboost 类别型特征 从特征工程到XGBoost参数调优

从特征工程到XGBoost参数调优

2023-03-13 11:43| 来源: 网络整理| 查看: 265

前言

本文陈述脉络:理论结合kaggle上一个具体的比赛。

正文数据科学的一般流程

1548322618454

指南 特征工程 评价指标 XGBoost参数调优 XGBoost并行处理 特征工程

结合以下案例分析:

Two Sigma Connect: Rental Listing Inquiries

任务:根据公寓的listing 内容,预测纽约市某公寓租赁listing的受欢迎程度标签: interest_level,该listing被咨询的次数

选择这个案例是因为小而精,虽然只有14维特征,但是基本上都涉及各种类型特征。

有三个取值:: ‘high’, ‘medium’, ‘low’,是一个多类分类任务 Listing内容有: 浴室和卧室的数目bathrooms, bedrooms 地理位置( longitude 、 latitude ) 地址: display_address、 street_address building_id、 listing_id、 manager_id Created:创建日期 Description:更多描述信息 features: 公寓的一些特征描述 photos: a list of photo links 价格:price 数据分析方法

对数据进行探索性的分析的工具包:pandas、 matplotlib/seaborn

读取训练数据,取少量样本进行观测,并查看数据规模和数据类型

标签、特征意义、特征类型等

分析每列特征的分布

直方图

包括标签列(对分类问题,可看出类别样本是否均衡)

检测奇异点(outliers)

分析每两列特征之间的相关性 – 特征与特征之间信息是否冗余 – 特征与标签是否线性相关

histogram 直方图

直方图:每个取值在数据集中出现的次数,可视为概率函 数(PDF)的估计(seaborn可视化工具比较简单)

123import seaborn as sns%matplotlib inline( seaborn 是基于matplotlib 的)sns.distplot(train.price.values, bins=50, kde=True)

核密度估计

Kernel Density Estimation, KDE 对直方图的加窗平滑

1548331998361

在分类任务中,我们关心不同类别的特征分布

violinplot 提供不同类别条件下特征更多的分部信息 核密度估计(KDE) 三个4分位数(quartile):1/4, 1/2, 3/4 1.5倍四分数间距(nterquartile range, IQR) IQR :第三四分位数和第一分位数的区别(即Q1~Q3的差距),表示变量的分散情况,播放差更稳健的统计量

12order = ['low', 'medium', 'high']sns.violinplot(x='interest_level', y='price', data=train, order = order)

1548331822211

outliers 奇异点

奇异点:或称离群点,指远离大多数样本的样本点。通常认为这些点是噪声,对模型有坏影响

可以通过直方图或散点图发现奇异点

直方图的尾巴

散点图上孤立的点

12345plt.figure(figsize=(8,6))plt.scatter(range(train_df.shape[0]), train_df.price.values, color = color[6])plt.xlabel('the number of train data', fontsize=12)plt.ylabel('price', fontsize=12)plt.show()

1548331724663

可以通过只保留某些分位数内的点去掉奇异点

如0.5%-99.5%,或>99% 12ulimit = np.percentile(train.price.values, 99)train['price'].loc[train['price']>ulimit] = ulimit correlation 相关性

相关性可以通过计算相关系数或打印散点图来发现

1548330721971

相关系数:两个随机变量x,y之间的线性相关程度,不线性相关并不代表不相关,可能高阶相关,如 $y=x^2$

$r = \frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum_{i=0}^{n}}(x_i-\bar{x})^2\sum_{i=0}^{n}(y_i-\bar{y})^2}, -1\le r \le 1$

通常 $|r| > 0.5$ ,认为两者相关性比较强

$r\cases{=0, &\text{完全线性不相关}\ >0, &\text{正相关}\



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3